<?php 

	include("config.php");
    include(INCLUDEDIR."core.php");
	include("acceso.php");
	
	if(!esProfesor()) redir("index.php","No tiene permiso para esta seccion",true);
	$tpl = new Sitio();
	$tpl->setPlantilla("tpl.clases.html");
	$tpl->prepare();
	
	$usuario = session_get("usuario");
	$id_yo = $usuario['id_persona'];
	
	$id_clase = isset($_GET['idc'])?intval($_GET['idc']):0;
	$id_clasedetalle = isset($_GET['idd'])?intval($_GET['idd']):0;
	if($id_clase==0 && !$_POST) redir("main.php");
	
	$institutos = db::getArrayKey("SELECT id_instituto, acronimo FROM institutos ORDER BY acronimo ASC");
	
	if($_GET['accion']=="eliminar_item") {
		$id_alumno = intval($_GET['ida']);
		$id_clase = intval($_GET['idc']);
		$callback = $_SERVER['PHP_SELF']."?idc=".$id_clase;
		$clase = db::getRow("	SELECT * FROM clases WHERE id_clase = '$id_clase' 
								AND id_profesor = '$id_yo' 
								AND id_estatus = '0'");
		if(count($clase)==0) {
			redir($callback,"No se puede eliminar alumno",true);
		}
				
		if($id_alumno>0 && $id_clase>0) {
			$query = "	DELETE FROM clases_detalle 
						WHERE id_clase = '$id_clase' 
						AND id_alumno = '$id_alumno'";
			mysql_query($query); 
		}
		redir($callback,"Se ha eliminado el alumno");
	}
	
	if($_GET['accion']=="eliminar_clase") {
		$id_clase = intval($_GET['idc']);
		$callback = $_SERVER['PHP_SELF']."?idc=".$id_clase;
		$clase = db::getRow("	SELECT * FROM clases 
								WHERE id_clase = '$id_clase' 
								AND id_profesor = '$id_yo' 
								AND id_estatus = '0' ");
		if(count($clase)==0) {
			redir($callback,"No se puede eliminar la clase",true);
		}
		if($id_clase>0) {
			$query = "	DELETE FROM clases_detalle 
						WHERE id_clase = '$id_clase' AND id_estatus = '0'";						
			mysql_query($query); 
			mysql_query("DELETE FROM clases WHERE id_clase = '$id_clase' AND id_estatus = '0'");
		}
		redir("clases.php","Se ha eliminado la clase");
	}
		
	if($_GET['accion']=="salvar_cambios") {
		$id_clase = intval($_GET['idc']);
		$callback = $_SERVER['PHP_SELF']."?idc=".$id_clase;
		$clase = db::getRow("	SELECT * FROM clases 
								WHERE id_clase = '$id_clase' 
								AND id_profesor = '$id_yo' 
								AND id_estatus = '0' ");
		if(count($clase)==0) {
			redir($callback,"No se puede actualizar la clase",true);
		}
		if($id_clase>0) {
			$query = "	UPDATE clases SET id_estatus = '1' WHERE id_clase = '$id_clase'";						
		}
		redir("clases.php","El estado de la clase ha pasado a PENDIENTE POR FACTURAR");
	}

	if($_POST['accion']=='ag_alumno') {		
		// // Array ( [id_alumno] => 21 [id_clase] => 48 [accion] => ag_alumno [txtbuscar] => Alejandra Carrillo [comentario] => [horas] => 2 [monto] => 50 [monto_inmediato] => 100 ) 
		$id_alumno = intval($_POST['id_alumno']);
		$id_clase = intval($_POST['id_clase']);	
		$comentario = isset($_POST['comentario'])?sanitizar($_POST['comentario']):"";
		$monto = ParseFloat($_POST['monto']);	
		if($monto>0) session_set("monto",$monto);
		$monto_inmediato = isset($_POST['monto_inmediato'])?ParseFloat($_POST['monto_inmediato']):0;
		$horas = intval($_POST['horas']);		
		$total_monto = $monto*$horas;
		$callback = $_SERVER['PHP_SELF']."?idc=".$id_clase;
		if($monto_inmediato>1500) redir($callback,"El monto pagado no puede ser tan alto");
		if($id_alumno==0){
			$txt = sanitizar($_POST['txtbuscar']);
			$query = "SELECT * FROM personas WHERE nombre_persona LIKE '$txt%'
					  OR nick like '$txt%' OR email = '$txt' or bb_pin like '$txt' or ci like '$txt'";
			$result = mysql_query($query);
			if($result && mysql_num_rows($result)==1) {
				$fila = mysql_fetch_assoc($result);
				$id_alumno = intval($fila['id_persona']);	
			} else redir($callback,"Debe especificar un estudiante",true);
		}
		
		if($id_clase==0) redir($callback,"No se ha especificado la clase",true);
		if($monto==0) redir($callback,"El monto no puede ser cero",true);
		$query = "SELECT count(*) FROM clases_detalle WHERE id_clase = '$id_clase' AND id_alumno = '$id_alumno'";
		$n = intval(db::ExecuteScalar($query));
		if($n>0){
			mysql_query("DELETE FROM clases_detalle WHERE id_clase = '$id_clase' AND id_alumno = '$id_alumno'");	
		}
		$persona = db::getRow("SELECT * FROM personas WHERE id_persona = '$id_alumno'");
		$id_referido = intval($persona['id_referido']);
		$clase = db::getRow("SELECT * FROM clases WHERE id_clase = '$id_clase'");
		$id_profesor = $clase['id_profesor'];
		if($id_alumno==$id_profesor) redir($callback,"No se puede agregar el profesor como alumno",true);
		$profesor = db::GetRow("SELECT * FROM personas WHERE id_persona = '$id_profesor'");
		mysql_query("DELETE FROM archivos_personas WHERE id_profesor = '$id_profesor' AND id_persona = '$id_alumno';");
		mysql_query("INSERT INTO archivos_personas (id_profesor,id_persona) VALUES ('$id_profesor','$id_alumno');");
		$porcentaje = floatval($profesor['porcentaje'])/100;
		$fecha_clase = $clase['fecha_clase'];
		$detalle = new genericDB("clases_detalle");
		$detalle->set("id_clase",$id_clase);
		$detalle->set("id_alumno",$id_alumno);
		$detalle->set("monto",$monto);
		$detalle->set("comentario",$comentario);
		$detalle->set("horas",$horas);
		$detalle->set("abonado",$monto_inmediato);
		if($detalle->Save()) {
			redir($callback,$persona['nombre_persona']." fue agregado a la clase");				
		}				
		redir($callback,"No se pudieron salvar los datos",true);
	}
	
	$miclase = db::getRow("SELECT * FROM clases WHERE id_clase = '$id_clase'");
	if(count($miclase)==0) redir("main.php"); 
	
	$tpl->newBlock("AGREGARALUMNO");
	
	$query = "	SELECT * FROM clases
				INNER JOIN personas ON clases.id_profesor = personas.id_persona
				WHERE clases.id_clase = '$id_clase'";
				
	$miclase = db::getRow($query);
	foreach($miclase as $k => $v) {
		if(strpos($k,"fecha")!==false) $v= db_a_fechacompleta($v);
		if(strpos($k,"hora")!==false) $v = getHora($v);
		$tpl->assign($k,$v);	
	}
	
	if($id_clasedetalle>0) {
		$query = " 	SELECT * FROM clases_detalle 
					INNER JOIN personas ON clases_detalle.id_alumno = personas.id_persona
					WHERE clases_detalle.id_clasedetalle = '$id_clasedetalle' ";
			
		$alumno_clase = db::getRow($query);
		$tpl->Render($alumno_clase);
	}
	
	$tpl->assign("comboinstitutos",genCombo("id_instituto",$institutos,0,"-- No aplica --"));
	
	$clasecerrada = intval($miclase['id_estatus'])>0;
	
	$tpl->newBlock("DIALOGALUMNO");
	
	// asistentes de la clase
	$query = "	SELECT * FROM clases_detalle
				INNER JOIN personas ON clases_detalle.id_alumno = personas.id_persona 
				WHERE clases_detalle.id_clase = '$id_clase'";
			
	$result = mysql_query($query);
	$total = 0;
	if($result && mysql_num_rows($result)>0) {
		while($fila = mysql_fetch_assoc($result)) {
			$tpl->newBlock("PERSONAITEM");
			$ida = $fila['id_alumno'];
			$mtotal = intval($fila['horas'])*$fila['monto'];
			foreach($fila as $k => $v) $tpl->assign($k,$v);		
			$tpl->assign("monto",tomoney($fila['monto']));		
			$tpl->assign("montototal",tomoney($mtotal));
			$tpl->assign("abonado",tomoney($fila['abonado']));
			if(!$clasecerrada) {
				$tpl->newBlock('ENLACE');
				$tpl->Render($fila);
			}
		}
		mysql_free_result($result);
		$query = "	SELECT SUM(clases_detalle.abonado) AS total_abonado, 
					SUM(clases_detalle.horas*clases_detalle.monto) AS total
					FROM clases_detalle  GROUP BY clases_detalle.id_clase
					HAVING clases_detalle.id_clase = '$id_clase' ";
		$result = mysql_query($query);
		if($result && mysql_num_rows($result)>0) {
			$tpl->newBlock("PERSONATOTAL");
			$fila = mysql_fetch_assoc($result);
			foreach($fila as $k => $v) $tpl->assign($k,tomoney($v));
		}
	}
	if(!$clasecerrada) {
		$tpl->newBlock("AGALUMNO");
		$session_monto = floatval(session_get("monto"));
		if($session_monto>0) $tpl->assign("session_monto",$session_monto);
		$tpl->Render($alumno_clase);
		$tpl->newBlock("BOTONSALVAR");
		$tpl->assign("id_clase",$id_clase);	
	}
	

	$tpl->Mostrar();
?>